Data partitioning for multi-link transmission

ABSTRACT

A method for transmitting a stream of data over a channel made up of a plurality of subchannels having respective subchannel rates. The method includes partitioning the data among the subchannels, such that successive words of the data are mapped to the subchannels in alternation responsive to the respective subchannel rates. The words of the data are transmitted over the subchannels to which they are mapped, and are then received and processed to recover the stream of data.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of the following U.S.provisional patent applications: provisional application No. 60/266,802,filed Feb. 6, 2001; a provisional application entitled “Multi-LinkTransmission Method,” filed Nov. 7, 2001; a provisional applicationentitled “Data Partitioning for a Modem with Multiple TransmitSubchannels,” filed Dec. 14, 2001; and a provisional applicationentitled “Apparatus and Method for Data Partitioning in a Multi-LinkModem,” filed Jan. 3, 2002. All of these related applications areincorporated herein by reference.

FIELD OF THE INVENTION

[0002] The present invention relates generally to digital communicationsystems, and specifically to methods and devices for efficientlypartitioning a data stream for transmission over multiple subchannels.

BACKGROUND OF THE INVENTION

[0003] In multi-link transmission, a single data stream is partitionedover a number of parallel links between a transmitter and a receiver. InAsynchronous Transfer Mode (ATM) networks, for example, a multi-linktransmission technique known as inverse multiplexing is used. Thistechnique is described in document AF-PHY-0086.001, promulgated by theATM Forum (1999), entitled “Inverse Multiplexing for ATM (IMA)Specification Version 1.1,” which is incorporated herein by reference.IMA allows data to be transferred to and from one virtual ATM port bymultiplexing over a number of parallel physical, point-to-point lines,such as E1 (2.048 Mbps) or T1 (1.544 Mbps) lines. Up to 32 such linesmay be used, as stated in the IMA standard, although it is generallyeconomical to use no more than eight lines, with the actual number oflines depending on the required bandwidth. IMA is typically used toserve sites for which a single E1 or T1 line does not give sufficientbandwidth, while a high-rate interface is not needed or economicallyjustified.

[0004] Multi-link methods are also known in the Digital Subscriber Line(DSL) field. DSL is a modem technology that enables broadband digitaldata to be transmitted over twisted-pair wire, which is the type ofinfrastructure that links most home and small business subscribers totheir telephone service providers. DSL modems enable users to accesshigh-speed digital networks, such as ATM and Internet Protocol (IP)networks, without requiring major investments in new infrastructure. Arange of DSL standards have been defined, known generically as “xDSL,”wherein the various standards have different data rates and otherassociated features but share common principles of operation.

[0005] Very high speed DSL (VDSL) access transmission systems, forexample, are described in standard TS 101 270-2 V1.1.3 (2000-09) of theTransmission and Multiplexing (TM) Technical Committee of the EuropeanTelecommunications Standards Institute (ETSI), entitled “AccessTransmission Systems on Metallic Access Cables; Very High Speed DigitalSubscriber Line (VDSL),” which is incorporated herein by reference.According to this standard (section 5.4), VDSL transceivers can beconfigured to carry two parallel subchannels over the same wire pair.Each subchannel corresponds to a different band of frequencies. Incurrent VDSL modems, the data rates of the two channels are both integermultiples of a basic symbol rate BSR, i.e., the data rate of one channelis R1=N1* BSR, and that of the other channel is R2=N2* BSR, so that theratio of the data rates between the two subchannels is N1:N2. In amulti-band configuration, data should clearly be split between the twochannels in this same ratio in order to use the channel resourcesefficiently.

[0006] In the approach currently defined by VDSL standards, the N1:N2ratio between the channels is maintained by alternately routing N1 bytesfor transmission on channel 1, and then routing N2 bytes fortransmission on channel 2. This approach has some disadvantages thatstem from the fact that the values of N1 and N2 can be up to severalhundred. Thus, for example, 200:201 is a valid N1:N2 ratio. In thiscase, the data are split at the transmitter in the following way:

[0007] Forward 200 bytes to channel 1

[0008] Forward 201 bytes to channel 2

[0009] Forward 200 bytes to channel 1

[0010] Forward 201 bytes to channel 2

[0011] Forward 200 bytes to channel 1

[0012] Forward 201 bytes to channel 2

[0013] . . .

[0014] It can be seen that this block-based splitting scheme does notgive good interleaving of bytes between the two subchannels. Therefore,if one of the subchannels has a lower noise margin than the other(resulting in a higher incidence of bit errors), the result will bebursts of errors coming from this subchannel in the output data streamat the receiver. A further disadvantage of this implementation is theneed for big input buffers to accumulate at least N1 and N2 bytes atboth the transmitter and the receiver. The additional buffering alsoresults in added latency.

[0015] Another type of DSL access system capable of multi-link operationis Symmetrical high-speed DSL (SDSL), as described in ETSI standard TS101 524 V1.1.2 (2001-08), entitled “Transmission and Multiplexing (TM);Access Transmission Systems on Metallic Access Cables; SymmetricalSingle Pair High Bitrate Digital Subscriber Line (SDSL),” which isincorporated herein by reference. SDSL can also operate in a four-wiremode, in which the transmitter and receiver are connected by two pairsof wires. This implementation is described by Leshem in “MultichannelSDSL Optional Mode,” published as ETSI document TM6 WD19 (Stockholm,Sweden, September, 2001) which is incorporated herein by reference. Forpairs 1 and 2 having respective rates R₁ and R₂, Leshem proposes thatthe first L₁ bytes in each block be allocated to pair 1, and theremaining L₂ bytes be allocated to pair 2, wherein L₁/L₂=R₁/R₂.

[0016] A number of proposals have been made for improving the transportof data streams over multi-link SDSL connections. For example, Volkeninget al. suggest that IMA be used for carrying ATM streams over SDSL in“IMA Support in SDSL Access Environment,” published as ETSI document TM6TD 39 (Stockholm, Sweden, September, 2001), which is incorporated hereinby reference. This proposal is based on the SDSL four-wire mode, inwhich the transmitter and receiver are connected by two physical links.In the IMA mode, the transmitter multiplexes the incoming ATM cellsalternately, cell by cell, over the two links. Although relatively easyto implement, this solution is limited to ATM applications and does notaddress the needs of other types of data streams. Furthermore, becausethe minimum block size for IMA is a single ATM cell (53 bytes), thisapproach suffers from limitations of poor interleaving and added latencyin the data transport. The cells are divided equally between the twolinks, with no provision for possible differences in data rate due todifferent noise margins. Therefore, the rate of data transport islimited by the rate of the worst-case link.

[0017] Leshem suggests that multiple different constellation sizes beused for multi-pair SDSL transmission, in “Constellations and Framing inTwo Pairs SDSL,” published as ETSI document TM6 TD 58 (Stockholm,Sweden, September, 2001), which is incorporated herein by reference. Theconstellation for each pair is adapted to give higher or lower bitloading per symbol, depending on the signal conditions on that pair. Inthis way, the overall data carrying capacity of the multiplexed links isincreased, while maintaining the same baud rate on all the links. Thismethod adds complication, however, in the physical-layer processing ofthe transmitter and receiver, which must be configured to handle thevariable constellations, while providing only coarse control (in 6 dBsteps) of the rate selection on each channel. It also fails to solve theabove-mentioned problems of poor interleaving and high latency.

SUMMARY OF THE INVENTION

[0018] It is an object of the present invention to provide improvedmethods and systems for multi-link communications.

[0019] It is a further object of some aspects of the present inventionto provide multi-link communication systems with enhanced interleavingof data between subchannels.

[0020] It is yet a further object of some aspects of the presentinvention to provide multi-link communication systems that minimize datalatency and buffering requirements associated with multiplexing the dataover different subchannels.

[0021] In preferred embodiments of the present invention, a multi-linktransmitter partitions data among two or more subchannels on aword-by-word basis. Each of the subchannels may operate at its own rate,substantially independent of the other subchannels, depending on theindividual subchannel conditions. The transmitter maps each word in thedata stream to one of the subchannels, depending on the subchannelrates, so that the data are distributed approximately evenly over allthe subchannels. In this manner, the data are shared among thesubchannels in proportion to the respective subchannel rates, makingoptimal use of the available bandwidth, while at the same time achievinggood interleaving and minimizing latency.

[0022] The word-by-word multiplexing techniques of the present inventionthus differ from multi-link schemes known in the art, which areblock-based. As described in the Background of the Invention, theseblock-based schemes divide the data stream among the sub-channels inlarge units, which depend on the payload blocks, packets or cells usedin higher-level data framing protocols. The words used for multiplexingby preferred embodiments of the present invention are substantiallyindependent of higher-level protocols. Typically, these words are bytes,although other greater or smaller word sizes, down to even single bits,may be used.

[0023] There is therefore provided, in accordance with a preferredembodiment of the present invention, a method for transmitting a streamof data over a channel made up of a plurality of subchannels havingrespective subchannel rates, the method including:

[0024] partitioning the data among the subchannels, such that successivewords of the data are mapped to the subchannels in alternationresponsive to the respective subchannel rates;

[0025] transmitting the words of the data over the subchannels to whichthey are mapped; and

[0026] receiving and processing the words from the subchannels torecover the stream of data.

[0027] Preferably, partitioning the data includes mapping bytes of thedata in alternation to the subchannels.

[0028] Typically, the stream of data is divided into a sequence of datablocks, each such block including a number of the words and having ablock size defined by the number of the words therein, and partitioningthe data includes mapping the successive words to the subchannels in amanner substantially independent of the block size. Preferably, the datablocks belong to one of a group of block types consisting of dataframes, packets and cells.

[0029] Additionally or alternatively, the method includes framing theblocks in accordance with a data framing protocol applicable to thechannel prior to mapping the successive words to the subchannels, andprocessing the words includes reassembling the blocks. In a preferredembodiment, framing the blocks includes, for each block among at leastsome of the blocks, combining the data from multiple bearers in apayload of the block, and mapping the successive words includes mappingthe words to the subchannels in a manner substantially independent of apartitioning of the payload among the multiple bearers. Preferably,combining the data includes altering the partitioning of the payload ofthe blocks, without affecting the partitioning of the data among thesubchannels.

[0030] In a preferred embodiment, the plurality of subchannels include aplurality of different frequency bands carried on a common physicalchannel. In another preferred embodiment, each of the plurality ofsubchannels includes a separate group of one or more wires.

[0031] Preferably, partitioning the data includes changing thepartitioning among the subchannels while transmitting the words of thedata, responsive to a change in one or more of the subchannels.

[0032] Preferably, partitioning the data includes deciding, for eachword among the successive words, to which of the subchannels the wordshould be mapped. Further preferably, deciding to which of thesubchannels the word should be mapped includes assigning respectivenumbers of the words to the subchannels so that at any point in timewhile transmitting the words of the data over the subchannels, a ratioof the numbers of the words that have been assigned to each of a givenpair of the subchannels is approximately equal to the ratio of therespective subchannel rates. Additionally or alternatively, deciding towhich of the subchannels the word should be mapped includes assigningthe words to the subchannels in an order such that the words that aremapped to each of the subchannels are distributed approximately evenlywith respect to the stream of data. Further additionally oralternatively, deciding to which of the subchannels the word should bemapped includes computing in advance a table of assignment of thesuccessive words to the subchannels, and partitioning the data includesmapping the words to the subchannels responsive to the table.

[0033] Preferably, deciding to which of the subchannels the word shouldbe mapped includes interleaving the words among the subchannels in anorder that is fully determined by the subchannel rates. Most preferably,receiving and processing the words includes determining, dependent uponthe rates, an order in which to reassemble the words so as to recoverthe stream of data.

[0034] In a preferred embodiment, deciding to which of the subchannelsthe word should be mapped includes selecting one of the subchannelsresponsive to an accumulated value indicative of a distribution of thewords among the subchannels, and updating the accumulated valueresponsive to the selected subchannel for use in deciding to which ofthe subchannels subsequent words should be mapped. Preferably, selectingone of the subchannels includes assigning a respective subchannel valueto each of the subchannels in proportion to the respective subchannelrates, and updating the accumulated value includes changing theaccumulated value responsive to the subchannel value assigned to theselected subchannel. Additionally or alternatively, updating theaccumulated value includes computing respective accumulated values forall the subchannels, responsive to the subchannel rates and torespective numbers of the words mapped to the subchannels, and selectingone of the subchannels includes selecting the one of the subchannelswhose respective accumulated value satisfies a predetermined criterion.

[0035] In a further preferred embodiment, the plurality of subchannelsincludes three or more subchannels, and deciding to which of thesubchannels the word should be mapped includes grouping at least two ofthe subchannels together in a subchannel group, routing a subset of thewords of the data to the subchannel group, and splitting the subset ofthe words among the subchannels in the subchannel group. Preferably,grouping at least two of the subchannels includes assigning thesubchannels in multiple subchannel groups, and providing a hierarchy ofsplitters for dividing the words among the groups, wherein routing andsplitting the subset of the words includes controlling the splitters soas to route and split the subset of the words.

[0036] In a preferred embodiment, transmitting the words of the dataincludes transmitting the data over a Digital Subscribe Line (DSL)connection.

[0037] There is also provided, in accordance with a preferred embodimentof the present invention, a method for transmitting a stream of dataover a channel made up of a plurality of subchannels, the methodincluding:

[0038] framing the data in a sequence of data blocks in accordance witha data framing protocol;

[0039] partitioning the data in each of the blocks among thesubchannels, such that successive words of the data are mapped to thesubchannels in alternation, in a manner substantially independent of theframing of the data blocks;

[0040] transmitting the words of the data over the subchannels to whichthey are mapped; and

[0041] receiving and processing the words from the subchannels so as toreassemble the data blocks.

[0042] There is additionally provided, in accordance with a preferredembodiment of the present invention, apparatus for transmitting a streamof data over a channel made up of a plurality of subchannels havingrespective subchannel rates, the apparatus including:

[0043] a subchannel demultiplexer, which is adapted to partition thedata among the subchannels by mapping successive words of the data tothe subchannels in alternation responsive to the respective subchannelrates; and

[0044] one or more physical layer interfaces, coupled to transmit thewords of the data over the subchannels to which they are mapped, wherebya receiver is able to receive and process the words from the subchannelsto recover the stream of data.

[0045] Typically, the stream of data is divided into a sequence of datablocks, each such block including a number of the words and having ablock size defined by the number of the words therein, and thesubchannel demultiplexer is adapted to map the successive words to thesubchannels in a manner substantially independent of the block size.Preferably, the apparatus includes a protocol processor, which isadapted to frame the blocks in accordance with a data framing protocolapplicable to the channel, prior to mapping the successive words to thesubchannels by the subchannel demultiplexer.

[0046] There is further provided, in accordance with a preferredembodiment of the present invention, apparatus for transmitting a streamof data over a channel made up of a plurality of subchannels, the methodincluding:

[0047] a protocol processor, which is adapted to frame the data in asequence of data blocks;

[0048] a subchannel demultiplexer, which is adapted to partition thedata among the subchannels by mapping successive words of the data tothe subchannels in alternation, substantially independently of theframing of the data blocks by the protocol processor;

[0049] one or more physical layer interfaces, coupled to transmit thewords of the data over the subchannels to which they are mapped, wherebya receiver is able to receive and process the words from the subchannelsso as to reassemble the data blocks.

[0050] The present invention will be more fully understood from thefollowing detailed description of the preferred embodiments thereof,taken together with the drawings in which:

BRIEF DESCRIPTION OF THE DRAWINGS

[0051]FIG. 1 is a block diagram that schematically illustrates amulti-link communication system, in accordance with a preferredembodiment of the present invention;

[0052]FIG. 2 is a block diagram that schematically illustrates amultiplexer used to partition a data stream among two subchannels, inaccordance with a preferred embodiment of the present invention;

[0053]FIG. 3 is a block diagram that schematically illustrates amultiplexer used to partition data among three subchannels, inaccordance with a preferred embodiment of the present invention;

[0054]FIG. 4 is a block diagram that schematically illustrates amultiplexer used to partition data among multiple subchannels, inaccordance with another preferred embodiment of the present invention;

[0055]FIG. 5 is a block diagram that schematically illustrates amulti-pair data transmitter, in accordance with a preferred embodimentof the present invention; and

[0056]FIG. 6 is a timing diagram that schematically illustratesmultiplexing of data words among multiple subchannels, in accordancewith a preferred embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0057]FIG. 1 is a block diagram that schematically illustrates amulti-link data communication system 20, in accordance with a preferredembodiment of the present invention. System 20 comprises a pair ofmodems, identified as a transmitter 22 and a receiver 24, which aretypically (although not necessarily) DSL modems. The transmitter andreceiver communicate over a channel 26, which is made up of multiplesubchannels 28, labeled channel 1 through channel K. Subchannels 28 maybe physically separate wires (or wire pairs), as in the SDSL four-wiremode described above. Alternatively, the subchannels may simply bedifferent partitions on a common wire pair, occupying different time orfrequency slots, as in dual-band VDSL, also described above. Typically,each subchannel has its own data rate, referred to here as R1, R2, . . ., RK, wherein for each subchannel J, the rate is given by RJ=NJ*BSR, asdescribed above. The rates are determined by transmitter 22 and receiver24 using rate negotiation procedures defined by the applicablestandards, depending upon the individual communication characteristicsof each subchannel.

[0058] A transmission protocol processing block 30 in transmitter 22receives an input data stream and frames the data for transmission, inaccordance with an applicable data transmission protocol. Such protocolsare defined, for example, by the VDSL and SDSL standards cited in theBackground of the Invention. Typically, block 30 adds overhead bits tothe data payload. A demultiplexer 32 maps the data frames, byte by byte,to subchannels 28, depending on the subchannel rates R1, R2, . . . , RK(or equivalently, the rate parameters N1, N2, . . . , NK). Preferably,demultiplexer 32 adds synchronization bytes to every subchannel. Amultiplexer 34 in receiver 24 reassembles the byte streams from thedifferent subchannels into the original data frames, using thesynchronization bytes to time the multiplexing properly. (Thesynchronization bytes may be added to every packet, or just once duringmodem start-up.) A further protocol processing block 36 extracts thepayload data from the frames and processes the data to generate anoutput data stream.

[0059] The use of synchronization bytes is applicable particularly toVDSL. Alternatively, for SDSL applications, for example, demultiplexer32 frames the data sent on each subchannel, as described below.Multiplexer 34 uses the subchannel framing in reassembling the originaldata frames.

[0060]FIG. 2 is a block diagram that schematically shows details ofdemultiplexer 32, in accordance with a preferred embodiment of thepresent invention. In this embodiment, channel 26 includes twosubchannels 28, labeled channel 1 and channel 2. A mapping multiplexer40 receives a stream of data bytes from protocol processing block 30 andmaps each byte to either channel 1 or channel 2, depending upon a selectinput (SEL) that it receives from selection logic 42. The selectionlogic drives multiplexer 40 based on integer values corresponding to thesubchannel rates, N1 and N2, which it receives as input. A decisionmultiplexer 46 outputs a value IN_ACCUM1, which is equal to either thevalue N2 or the value −N1, depending on the select input SEL. IN_ACCUM1is input to an accumulator 48, generating an output ACCUM to a selector44. The selector determines the value of SEL to be 0 (to select thefirst input to each of multiplexers 40 and 46) when ACCUM>N1, or to be 1otherwise (selecting the second input to the multiplexers).

[0061] The operation of selection logic 42 is summarized by thefollowing pseudocode:

[0062] TABLE I—OPERATION OF SELECTION LOGIC

[0063] Initialize ACCUM=0;

[0064] For every input byte do the following:

[0065] 1. If (ACCUM>N1) then SEL=1, else SEL=0;

[0066] 2. If SEL=1 send byte to channel 2, else send byte to channel 1;

[0067] 3. If SEL=1 then IN_ACCUM1=−N1, else IN_ACCUM1=N2;

[0068] 4. ACCUM=ACCUM+IN_ACCUM1.

[0069] Alternative algorithms may also be used, as will be apparent tothose skilled in the art. For example, at step 1 in the table above, thecondition tested may be whether ACCUM≧N1. Alternatively, ACCUM may betested against some other integer value. In this case, the first cycleof the routine will give a different result, but otherwise logic 42 willfunction in substantially the same manner. Logic 42 is typicallyimplemented using dedicated processing hardware, but it mayalternatively be implemented in software running on a suitableprogrammable processor. The embodiments described below are likewisegiven to either hardware or software implementation.

[0070] Applying selection logic 42 to the case described in theBackground of the Invention, in which N1:N2=200:201, will result inmultiplexer 40 mapping the data bytes for output as follows:

[0071] Forward one byte to channel 1

[0072] Forward one byte to channel 2

[0073] . . . (repeat forwarding bytes in alternation, one byte tochannel 1, and the next byte to channel 2, 199 times)

[0074] . . .

[0075] Forward one byte to channel 2

[0076] Forward one byte to channel 1

[0077] Forward two bytes to channel 2

[0078] Forward one byte to channel 1

[0079] Forward one byte to channel 2

[0080] Forward one byte to channel 1

[0081] . . .

[0082] It can be seen that the bytes are evenly spread between the twosubchannels, so that any latency added by the multi-link transmissionscheme used here should be no more than a few bytes. The bytes are fullyinterleaved between the two channels, so that even if a number ofsymbols are lost due to noise on one of the subchannels, errorcorrection should still be possible using the intact data received onthe other subchannel.

[0083] As an alternative, logic 42 and multiplexer 40 may be configuredto map the data to channels 1 and 2 in other basic data quantities, suchas words of two or three bytes each. Other word sizes and mappings ofthis sort will be apparent to those skilled in the art.

[0084]FIG. 3 is a block diagram that schematically illustratesdemultiplexer 32 in accordance with another preferred embodiment of thepresent invention, in which the principles of the preceding embodimentare extended to cover three subchannels 28. In this case, demultiplexer32 comprises two selection blocks 42, preferably of the form shown inFIG. 2, controlling respective mapping multiplexers 40. In the firstselection block, channel 1 and 2 are treated as a single subchannel,with rate N1+N2. The first mapping multiplexer thus distributes theincoming data bytes between channel 3 and the aggregated channels 1 and2, depending on the ratio (N1+N2):N3. The second mapping multiplexerdistributes the data bytes mapped to the aggregated channels between theindividual channels 1 and 2. Extension of this structure to servehierarchies with larger numbers of subchannels is straightforward.

[0085]FIG. 4 is a block diagram that schematically shows details ofdemultiplexer 32 in accordance with yet another preferred embodiment ofthe present invention. In this embodiment, demultiplexer 32 comprises ahierarchical tree of L stages, for partitioning data words among Ksubchannels, having respective data rates R[1], R[2], . . . , R[K]. L isthe smallest integer that is equal to or greater than log₂K, so that inthe present case, with K=8, L=3. Demultiplexer 32 is made up of M−1two-way splitters 50, wherein M=2^(L), and K−1 of the splitters arenon-degenerate. Thus, in the present example, there are seven splitters50, labeled MUX 1 through MUX 7. (When M≠K, the remaining, degeneratesplitters perform only fixed routing, with no splitting function.) Thestate of splitters 50 determines the subchannel to which each incomingdata word is routed.

[0086] Preferably, the operation of splitters 50 is controlled based onpre-calculated arrays of switching parameters. The calculation is basedon the respective rates R of the subchannels. Most preferably, in orderto achieve good interleaving among the subchannels, the arrangement ofthe M−1 splitters with respect to the subchannels is made in such a wayas to give a balanced tree in terms of data rates. In other words, eachtwo-way splitter should be associated with two routes with similaraggregate rates. Three different exemplary methods of pre-calculationand data partitioning are described below. Alternative methods will beapparent to those skilled in the art.

EXAMPLE 1

[0087] In this case, the splitting is based on three (M−1)-entry arrays:A[i], C1[i] and C2[i]. A[i] is an accumulator identified with the ithtwo-way splitter 50, which is updated for each incoming data byte. C1[i]and C2[i] are constants used in incrementing and decrementing the ithaccumulator. These constants are pre-calculated during systeminitialization, and should be updated any time there is a change in atleast one subchannel rate. C1[i] and C2[i] are calculated as follows:

For i=M/2 to M−1

C 1[i]=R[2*i−M+1]

C 2[i]=R[2*i−M+2]

For i=M/2−1 to 1 (a decreasing index in steps of −1)

C 1[i]=C 1[2*i]+C 2[2*i]

C 2[i]=C 1[2*i+1]+C 2[2*i+1]

[0088] In these calculations, when K<M, the rates R[K+1] through R[M]are set to zero.

[0089] To begin operation of the multiplexer, all the accumulators A[i]are set to zero. The following calculation is then performed for everyincoming data byte: {  k = 1  For i=1 to L  {   If (A[k] ≧ C1[k])   {   A[k] = A[k] − C1[k]    sel = 1   }   else   {    A[k] = A[k] + C2[k]   sel = 0   }   k = k*2 + sel  }  Route the data byte to subchannel no.(k−M+1) }

EXAMPLE 2

[0090] In this method, unlike the preceding one, accumulators A[i] areassociated with respective subchannels 28, for i=1, . . . , K, alongwith a single array of constant parameters C[i]. The parameters C[i] arepre-calculated during system initialization and are updated any timethere is a change in at least one of the subchannel rates. In thisexample, each C[i] is simply set equal to G/R[i], wherein G is the leastcommon multiple (LCM) of R1, R2, . . . RK. Alternatively, other valuesof G may be used. As before, all the accumulators A[i] are set to zerobefore beginning operation. The following calculation is then performedfor each incoming data byte:

[0091] {

[0092] Find j such that A[j]=min(A[i]) over all i≦K

[0093] A[j]=A[j]+C[j]

[0094] Send data byte to subchannel no. j

[0095] }

[0096] Splitters 50 are set for each byte so as to select subchannel j,as provided by this calculation. If there is more than one value of jfor which A[j]=min(A[i]), the lowest of these values of j may beselected. Alternatively, instead of finding min(A[i]) at each iteration,the data byte may be routed to the first subchannel found to have A[i]less than some predefined value. As a further alternative, after allsubchannel accumulators reach values greater than a predefinedthreshold, T, this threshold value is subtracted from all accumulators.In this case, for each incoming data byte, the following computation isperformed:

[0097] {

[0098] If all A[h]≧T (h=1, . . . ,K)

[0099] A[h]=A[h]−T, (h=1, . . . ,K)

[0100] Find first j such that A[j]<T

[0101] A[j]=A[j]+C[j]

[0102] Send data byte to subchannel no. j

[0103] }

[0104] The methods of Example 2 are intuitively clear and areadvantageously implemented in software. On the other hand, the method ofExample 1 is a modular solution, which is generally easier to implementin hardware using the tree of splitters shown in FIG. 4.

EXAMPLE 3

[0105] This method is similar to that described in Example 2, but uses ascaling factor h to keep the accumulator values A[i] within a relativelysmall range. The parameters C[i] are pre-calculated as in Example 2.Preferably, h is the subchannel index such that C[h]=min(C[i]), takenover all i. Alternatively, h may be chosen to be a different subchannelindex. The following calculation is performed for each incoming databyte:

[0106] {

[0107] Find j such that A[j]=min(A[i]) over all i≦K

[0108] If (j≠h)

[0109] A[j]=A[j]+C[j]

[0110] Else

[0111] A[i]=A[i]−C[j] for all i except j

[0112] End

[0113] Send data byte to subchannel no. j

[0114] }

[0115]FIG. 5 is a block diagram that schematically illustrates amulti-pair transmitter 60, in accordance with another preferredembodiment of the present invention. This model is similar to thestandard SDSL transmitter reference configuration, as described inChapter 4 (page 13) of the above-mentioned ETSI standard, except that itis extended to serve K subchannels 28. Typically, in SDSLconfigurations, as described in the Background of the Invention, eachsubchannel comprises a separate wire pair. The embodiment shown here maybe used to implement the above-mentioned SDSL four-wire mode (in whichcase K=2), as well as extending this mode to higher values of K.

[0116] Transmitter 60 comprises a Transmission ProtocolSpecific-Transmission Convergence (TPS-TC) unit 62, which is similar tothe TPC-TC block provided by the SDSL specification, except for theaddition of byte-level multiplexing for multi-link support, as providedby the present invention. An interface and mapping sub-unit 64interfaces to narrowband (NB) and broadband (BB) services, and performsdata framing and other upper-level protocol functions, as are known inthe art. Preferably, sub-unit 64 is configured for dual-bearer mapping,as defined by the SDSL standard, wherein each payload sub-block carriedover a SDSL link is split between two separate communication streamswith different rates. In other words, sub-unit 64 is configured toprocess data from different bearers, and to map the bytes of data fromthe different bearers into multi-pair payload blocks for transmissionover channel 26. Dynamic rate repartitioning (DRR) can be used toreconfigure the data rate allocation between the different latency pathsby modifying the multiplexing control parameters of sub-unit 64, withoutchanging the total data rate carried by transmitter 60.

[0117] Interface and mapping sub-unit 64 passes the multi-pair payloadblocks, as well as synchronization and maintenance signals, to amulti-pair multiplexing sub-unit 66. Sub-unit 66 maps each of theseinput multi-pair payload blocks into K separate link payload blocks, onefor each of subchannels 28. The subchannel mapping is performed on abyte-by-byte basis, as described further hereinbelow. The multi-pairpayload blocks generated by sub-unit 64, however, are essentiallysimilar to conventional, single-pair payload blocks, so that themultiplexing function performed by sub-unit 66 is transparent tosub-unit 64. Therefore, the multi-pair multiplexing performed bysub-unit 66 is transparent to the TPS-TC interface, mapping and DRRfunctions of sub-unit 64.

[0118] Multiplexing sub-unit 66 outputs the appropriate link payloadblocks, along with synchronization and maintenance signals, to K corefunction units 68, one for each subchannel 28. Preferably, any Z-bits(which are used, according to the SDSL standard, for service, signalingand maintenance) in the multi-pair payload blocks are duplicated to allthe links. Units 68 serve as physical layer interfaces to the respectivesubchannels. They perform Physical Medium Specific (PMS) and PhysicalMedium Dependent (PMD) functions for their respective subchannels, asprovided by the SDSL specification.

[0119]FIG. 6 is a block diagram that schematically illustratesmultiplexing of bytes 80 from four SDSL subchannel links 70, 72, 74 and76 into a multi-link payload block 78, in accordance with a preferredembodiment of the present invention. Each byte is labeled with twoindices: an upper index representing the subchannel (numbered 1 through4) over which the byte is to be carried, and a lower index counting thebytes on each subchannel. In the present example, the links are assumedto have respective payload rates of 192, 256, 320, and 384 kbps. Withinthe 125 μs duration of the multi-link block, these rates correspondrespectively to three, four, five, and six bytes per link payload block.More generally, based on standard SDSL link rates, the number of timeslots n_(i) used on subchannel i for each multi-link payload block cantake on any value in the range of three to thirty-six, depending onchannel conditions.

[0120] Multiplexing sub-unit 66 maps the bytes in the multi-pair payloadblock to the individual link payload blocks according to a “firstavailable link” criterion, in order to achieve minimum latency. Thebytes that are mapped to each of the link payload blocks areapproximately evenly spread over the multi-pair payload block, in orderto provide good interleaving. The mapping of successive bytes to thedifferent subchannels may be determined on the fly, using logic such asthat shown in the preceding figures, for example. Alternatively, themapping for given combinations of subchannel rates may be precalculatedand stored in a table, for example, and then applied to each of thebytes in sequence. In either case, the interleaving order of the bytesis fully determined by the subchannel rates. It is therefore sufficientfor the transmitter to pass the rates and identification numbers of thesubchannels to the receiver, and there is no need for exchange ofinterleaving tables. As indicated at the bottom of the figure, data fromtwo different bearers (bearer 1 and bearer 2) with different, respectivebandwidths have been mapped together into multi-link payload block 78 bysub-block 64. Of the eighteen bytes in block 78, the first six areallocated to bearer 1, and the remainder to bearer 2.

[0121] The order of multiplexing bytes 80 among subchannels 70, 72, 74and 76 is preferably determined exactly from the payload rates, as shownin FIG. 6, in order to ensure optimal use of available link bandwidth.Any of the methods described above can be used for this purpose.Alternatively, the algorithm described in pseudocode in Table II belowmay be used: TABLE II For all multi-pair payload bytes  For i = 1:K //all links   A[i] = A[i] + p;   if (A[i] ≧ q[i])) {    A[i] = A[i] −q[i];    next byte is mapped to link i    }

[0122] Here A[i] are accumulators, as above, one per subchannel, whichare first set to zero. Then, for each iteration, the accumulators areincremented by a value p, and the result is mapped to the range [0,q−1]by a modulo operation. Initial values of p and q[i] can be defined asmax(n[i]) and floor(Σn[i]*p/n[i]), respectively, wherein n[i] is thenumber of time slots used on subchannel i for each multi-link payloadblock, as noted above. The function “floor” means the greatest integerthat is less than or equal to its argument. Using four subchannels, withn₁=3, n₂=4, n₃=4, and n₄=5, as described above, the algorithm in TableII generates the mapping shown in FIG. 6.

[0123] Preferably, transmitter 60 is configured so that the number K ofsubchannels 28 over which it multiplexes the data stream, as well as theindividual rates of the subchannels, may change from time to time.Referring back to FIG. 5, it is seen that TPS-TC unit 62 and corefunction units 68 have maintenance interfaces and, as noted above,exchange maintenance signals. Preferably, startup and maintenanceprotocols used by transmitter 60 and its associated receiver (as shownin FIG. 1) exploit the embedded operations channel (eoc) defined by theSDSL specification for their startup and maintenance protocols. Theseprotocols are used in defining the subchannels and multiplexing ratios,based on the subchannel rates at system startup. In addition, if a linkis added, deleted, fails or changes its rate during operation, themaintenance protocol is preferably used to update the multiplexingscheme accordingly. These functions can be integrated with a DRRprotocol, by adding the new data rates of the subchannels to the DRRmessages.

[0124] Although preferred embodiments are described herein withreference to particular VDSL and SDSL standards, the principles of thepresent invention may similarly be extended to other varieties of DSLlinks, as well as to digital communication systems of other types.Furthermore, although these preferred embodiments are drawn to devicesthat map successive words to different subchannels on a word-by-wordbasis, the methods described above may also be used simply forcalculating the distribution of words in a data block of fixed sizeamong a number of different subchannels with different rates. Thisdistribution of the words, in proportion to the relative rates of thesubchannels, provides efficient use of subchannel resources even if thewords are not interleaved evenly among the subchannels. Such methods forefficient multiplexing of data blocks among three or more subchannelsare not taught by the prior art.

[0125] It will thus be appreciated that the preferred embodimentsdescribed above are cited by way of example, and that the presentinvention is not limited to what has been particularly shown anddescribed hereinabove. Rather, the scope of the present inventionincludes both combinations and subcombinations of the various featuresdescribed hereinabove, as well as variations and modifications thereofwhich would occur to persons skilled in the art upon reading theforegoing description and which are not disclosed in the prior art.

1. A method for transmitting a stream of data over a channel made up ofa plurality of subchannels having respective subchannel rates, themethod comprising: partitioning the data among the subchannels, suchthat successive words of the data are mapped to the subchannels inalternation responsive to the respective subchannel rates; transmittingthe words of the data over the subchannels to which they are mapped; andreceiving and processing the words from the subchannels to recover thestream of data.
 2. A method according to claim 1, wherein partitioningthe data comprises mapping bytes of the data in alternation to thesubchannels.
 3. A method according to claim 1, wherein the stream ofdata is divided into a sequence of data blocks, each such blockcomprising a number of the words and having a block size defined by thenumber of the words therein, and wherein partitioning the data comprisesmapping the successive words to the subchannels in a mannersubstantially independent of the block size.
 4. A method according toclaim 3, wherein the data blocks belong to one of a group of block typesconsisting of data frames, packets and cells.
 5. A method according toclaim 3, and comprising framing the blocks in accordance with a dataframing protocol applicable to the channel prior to mapping thesuccessive words to the subchannels, and wherein processing the wordscomprises reassembling the blocks.
 6. A method according to claim 5,wherein framing the blocks comprises, for each block among at least someof the blocks, combining the data from multiple bearers in a payload ofthe block, and wherein mapping the successive words comprises mappingthe words to the subchannels in a manner substantially independent of apartitioning of the payload among the multiple bearers.
 7. A methodaccording to claim 6, wherein combining the data comprises altering thepartitioning of the payload of the blocks, without affecting thepartitioning of the data among the subchannels.
 8. A method according toclaim 1, wherein the plurality of subchannels comprise a plurality ofdifferent frequency bands carried on a common physical channel.
 9. Amethod according to claim 1, wherein each of the plurality ofsubchannels comprises a separate group of one or more wires.
 10. Amethod according to claim 1, wherein partitioning the data compriseschanging the partitioning among the subchannels while transmitting thewords of the data, responsive to a change in one or more of thesubchannels.
 11. A method according to claim 1, wherein partitioning thedata comprises deciding, for each word among the successive words, towhich of the subchannels the word should be mapped.
 12. A methodaccording to claim 11, wherein deciding to which of the subchannels theword should be mapped comprises assigning respective numbers of thewords to the subchannels so that at any point in time while transmittingthe words of the data over the subchannels, a ratio of the numbers ofthe words that have been assigned to each of a given pair of thesubchannels is approximately equal to the ratio of the respectivesubchannel rates.
 13. A method according to claim 11, wherein decidingto which of the subchannels the word should be mapped comprisesassigning the words to the subchannels in an order such that the wordsthat are mapped to each of the subchannels are distributed approximatelyevenly with respect to the stream of data.
 14. A method according toclaim 11, wherein deciding to which of the subchannels the word shouldbe mapped comprises computing in advance a table of assignment of thesuccessive words to the subchannels, and wherein partitioning the datacomprises mapping the words to the subchannels responsive to the table.15. A method according to claim 11, wherein deciding to which of thesubchannels the word should be mapped comprises interleaving the wordsamong the subchannels in an order that is fully determined by thesubchannel rates.
 16. A method according to claim 15, wherein receivingand processing the words comprises determining, dependent upon therates, an order in which to reassemble the words so as to recover thestream of data.
 17. A method according to claim 11, wherein deciding towhich of the subchannels the word should be mapped comprises selectingone of the subchannels responsive to an accumulated value indicative ofa distribution of the words among the subchannels, and updating theaccumulated value responsive to the selected subchannel for use indeciding to which of the subchannels subsequent words should be mapped.18. A method according to claim 17, wherein selecting one of thesubchannels comprises assigning a respective subchannel value to each ofthe subchannels in proportion to the respective subchannel rates, andwherein updating the accumulated value comprises changing theaccumulated value responsive to the subchannel value assigned to theselected subchannel.
 19. A method according to claim 17, whereinupdating the accumulated value comprises computing respectiveaccumulated values for all the subchannels, responsive to the subchannelrates and to respective numbers of the words mapped to the subchannels,and wherein selecting one of the subchannels comprises selecting the oneof the subchannels whose respective accumulated value satisfies apredetermined criterion.
 20. A method according to claim 17, wherein theplurality of subchannels comprises three or more subchannels, andwherein deciding to which of the subchannels the word should be mappedcomprises: grouping at least two of the subchannels together in asubchannel group; routing a subset of the words of the data to thesubchannel group; and splitting the subset of the words among thesubchannels in the subchannel group.
 21. A method according to claim 20,wherein grouping at least two of the subchannels comprises assigning thesubchannels in multiple subchannel groups, and providing a hierarchy ofsplitters for dividing the words among the groups, wherein routing andsplitting the subset of the words comprises controlling the splitters soas to route and split the subset of the words.
 22. A method according toclaim 1, wherein transmitting the words of the data comprisestransmitting the data over a Digital Subscribe Line (DSL) connection.23. A method for transmitting a stream of data over a channel made up ofa plurality of subchannels, the method comprising: framing the data in asequence of data blocks in accordance with a data framing protocol;partitioning the data in each of the blocks among the subchannels, suchthat successive words of the data are mapped to the subchannels inalternation, in a manner substantially independent of the framing of thedata blocks; transmitting the words of the data over the subchannels towhich they are mapped; and receiving and processing the words from thesubchannels so as to reassemble the data blocks.
 24. A method accordingto claim 23, wherein the data blocks belong to one of a group of blocktypes consisting of data frames, packets and cells.
 25. A methodaccording to claim 23, wherein framing the data comprises framing theblocks in accordance with a data framing protocol applicable to thechannel.
 26. A method according to claim 25, wherein framing the blockscomprises, for each block among at least some of the blocks, combiningthe data from multiple bearers in a payload of the block, and whereinmapping the successive words comprises mapping the words to thesubchannels in a manner substantially independent of a partitioning ofthe payload among the multiple bearers.
 27. A method according to claim26, wherein combining the data comprises altering the partitioning ofthe payload of the blocks, substantially without affecting thepartitioning of the data among the subchannels.
 28. Apparatus fortransmitting a stream of data over a channel made up of a plurality ofsubchannels having respective subchannel rates, the apparatuscomprising: a subchannel demultiplexer, which is adapted to partitionthe data among the subchannels by mapping successive words of the datato the subchannels in alternation responsive to the respectivesubchannel rates; and one or more physical layer interfaces, coupled totransmit the words of the data over the subchannels to which they aremapped, whereby a receiver is able to receive and process the words fromthe subchannels to recover the stream of data.
 29. Apparatus accordingto claim 28, wherein the subchannel demultiplexer is adapted to mapbytes of the data in alternation to the subchannels.
 30. Apparatusaccording to claim 28, wherein the stream of data is divided into asequence of data blocks, each such block comprising a number of thewords and having a block size defined by the number of the wordstherein, and wherein the subchannel demultiplexer is adapted to map thesuccessive words to the subchannels in a manner substantiallyindependent of the block size.
 31. Apparatus according to claim 30,wherein the data blocks belong to one of a group of block typesconsisting of data frames, packets and cells.
 32. Apparatus according toclaim 30, and comprising a protocol processor, which is adapted to framethe blocks in accordance with a data framing protocol applicable to thechannel, prior to mapping the successive words to the subchannels by thesubchannel demultiplexer.
 33. Apparatus according to claim 32, whereinthe protocol processor is adapted, for each block among at least some ofthe blocks, to combine the data from multiple bearers in a payload ofthe block, and wherein the subchannel demultiplexer is adapted to mapthe words to the subchannels in a manner substantially independent of apartitioning of the payload among the multiple bearers.
 34. Apparatusaccording to claim 33, wherein the protocol processor is adapted toalter the partitioning of the payload of the blocks, without affectingthe partitioning of the data among the subchannels by the subchanneldemultiplexer.
 35. Apparatus according to claim 28, wherein theplurality of subchannels comprise a plurality of different frequencybands carried on a common physical channel.
 36. Apparatus according toclaim 28, wherein each of the plurality of subchannels comprises aseparate group of one or more wires, and wherein the one or morephysical layer interfaces comprise a plurality of physical layerinterfaces, respectively coupled to the plurality of subchannels. 37.Apparatus according to claim 28, wherein the subchannel demultiplexer isadapted to change the partitioning of the data among the subchannelswhile transmitting the words of the data, responsive to a change in oneor more of the subchannels.
 38. Apparatus according to claim 28, whereinthe subchannel demultiplexer is adapted to partition the data bydeciding, for each word among the successive words, to which of thesubchannels the word should be mapped.
 39. Apparatus according to claim38, wherein the subchannel demultiplexer is adapted to assign respectivenumbers of the words to the subchannels so that at any point in timewhile transmitting the words of the data over the subchannels, a ratioof the numbers of the words that have been assigned to each of a givenpair of the subchannels is approximately equal to the ratio of therespective subchannel rates.
 40. Apparatus according to claim 38,wherein the subchannel demultiplexer is adapted to assign the words tothe subchannels in an order such that the words that are mapped to eachof the subchannels are distributed approximately evenly with respect tothe stream of data.
 41. Apparatus according to claim 38, wherein thesubchannel demultiplexer is adapted to map the words to the subchannelsresponsive to a pre-computed table of assignment of the successive wordsto the subchannels.
 42. Apparatus according to claim 38, wherein thesubchannel demultiplexer is adapted to interleave the words among thesubchannels in an order that is fully determined by the subchannelrates, whereby the receiver is able to determine, dependent upon therates, an order in which to reassemble the words so as to recover thestream of data.
 43. Apparatus according to claim 38, wherein thesubchannel demultiplexer is adapted to select one of the subchannels towhich the word should be mapped responsive to an accumulated valueindicative of a distribution of the words among the subchannels, and toupdate the accumulated value responsive to the selected subchannel foruse in deciding to which of the subchannels subsequent words should bemapped.
 44. Apparatus according to claim 43, wherein the subchanneldemultiplexer is adapted to assign a respective subchannel value to eachof the subchannels in proportion to the respective subchannel rates, andto update the accumulated value responsive to the subchannel valueassigned to the selected subchannel.
 45. Apparatus according to claim43, wherein the subchannel demultiplexer is adapted to computerespective accumulated values for all the subchannels, responsive to thesubchannel rates and to respective numbers of the words mapped to thesubchannels, and to select the one of the subchannels whose respectiveaccumulated value satisfies a predetermined criterion.
 46. Apparatusaccording to claim 43, wherein the plurality of subchannels comprisesthree or more subchannels, and wherein the subchannel demultiplexer isadapted to decide to which of the subchannels the word should be mappedby grouping at least two of the subchannels together in a subchannelgroup, routing a subset of the words of the data to the subchannelgroup, and splitting the subset of the words among the subchannels inthe subchannel group.
 47. Apparatus according to claim 46, wherein thesubchannel demultiplexer comprises a hierarchy of splitters arranged soas to group the subchannels in multiple subchannel groups, and isadapted to control the splitters so as to route and split the wordsamong the multiple groups.
 48. Apparatus according to claim 28, whereinthe channel comprises a Digital Subscribe Line (DSL) connection. 49.Apparatus for transmitting a stream of data over a channel made up of aplurality of subchannels, the method comprising: a protocol processor,which is adapted to frame the data in a sequence of data blocks; asubchannel demultiplexer, which is adapted to partition the data amongthe subchannels by mapping successive words of the data to thesubchannels in alternation, substantially independently of the framingof the data blocks by the protocol processor; one or more physical layerinterfaces, coupled to transmit the words of the data over thesubchannels to which they are mapped, whereby a receiver is able toreceive and process the words from the subchannels so as to reassemblethe data blocks.
 50. Apparatus according to claim 49, wherein the datablocks belong to one of a group of block types consisting of dataframes, packets and cells.
 51. Apparatus according to claim 49, whereinthe protocol processor is adapted to frame the blocks in accordance witha data framing protocol applicable to the channel.
 52. Apparatusaccording to claim 49, wherein the protocol processor is adapted, foreach block among at least some of the blocks, to combine the data frommultiple bearers in a payload of the block, and wherein the subchanneldemultiplexer is adapted to map the successive words to the subchannelsin a manner substantially independent of a partitioning of the payloadamong the multiple bearers.
 53. Apparatus according to claim 52, whereinthe protocol processor is adapted to alter the partitioning of thepayload of the blocks, substantially without affecting the partitioningof the data among the subchannels.